package org.example.study6;

public class SingletonDCL {
    // 定义一个全局的变量
    private static volatile SingletonDCL instance = null;

    // 构造方法私有化
    private SingletonDCL() {
    }

    public static SingletonDCL getInstance() {
        // 第一次判断是否需要加锁
        if (instance == null) {
            // 获取锁
            synchronized (SingletonDCL.class) {
                // 判断一个对象是不是已经创建过
                if (instance == null) {
                    // 创建对象
                    instance = new SingletonDCL();
                }
            }
        }
        // 返回对象
        return instance;
    }
}